// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2018 Theobroma Systems Design und Consulting GmbH
 */

/dts-v1/;
#include "rk3368-lion.dtsi"

/ {
	model = "Theobroma Systems RK3368-uQ7 Baseboard";
	compatible = "tsd,rk3368-lion-haikou", "rockchip,rk3368";

	chosen {
		stdout-path = "serial0:115200n8";
	};

	i2cmux2 {
		i2c@0 {
			eeprom: eeprom@50 {
				compatible = "atmel,24c01";
				pagesize = <8>;
				reg = <0x50>;
			};
		};
	};

	leds {
		pinctrl-0 = <&led_pins_module>, <&led_sd_haikou>;

		sd-card-led {
			label = "sd_card_led";
			gpios = <&gpio0 RK_PD2 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "mmc0";
		};
	};

	dc_12v: dc-12v {
		compatible = "regulator-fixed";
		regulator-name = "dc_12v";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
	};

	vcc3v3_baseboard: vcc3v3-baseboard {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v3_baseboard";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&dc_12v>;
	};

	vcc5v0_otg: vcc5v0-otg-regulator {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&otg_vbus_drv>;
		regulator-name = "vcc5v0_otg";
		regulator-always-on;
	};
};

&sdmmc {
	bus-width = <4>;
	cap-mmc-highspeed;
	cap-sd-highspeed;
	cd-gpios = <&gpio2 RK_PB3 GPIO_ACTIVE_LOW>;
	disable-wp;
	max-frequency = <25000000>;
	pinctrl-names = "default";
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
	rockchip,default-sample-phase = <90>;
	vmmc-supply = <&vcc3v3_baseboard>;
	status = "okay";
};

&spi2 {
	cs-gpios = <0>, <&gpio2 RK_PC3 GPIO_ACTIVE_LOW>;
	status = "okay";
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
	status = "okay";
};

&usb_otg {
	dr_mode = "otg";
	status = "okay";
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
	status = "okay";
};

&uart1 {
	/* alternate function of GPIO5/6 */
	status = "disabled";
};

&pinctrl {
	pinctrl-names = "default";
	pinctrl-0 = <&haikou_pin_hog>;

	hog {
		haikou_pin_hog: haikou-pin-hog {
			rockchip,pins =
				/* LID_BTN */
				<3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
				/* BATLOW# */
				<0 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>,
				/* SLP_BTN# */
				<3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
				/* BIOS_DISABLE# */
				<3 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	leds {
		led_sd_haikou: led-sd-gpio {
			rockchip,pins =
				<0 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	sdmmc {
		sdmmc_cd_gpio: sdmmc-cd-gpio {
			rockchip,pins =
				<2 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	usb_otg {
		otg_vbus_drv: otg-vbus-drv {
			rockchip,pins =
				<0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};
};
